/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package carrancao.controlador;

import carrancao.entidades.Cliente;
import carrancao.exception.CadastrarClienteException;
import carrancao.repositorio.ClienteRepositorio;
import java.util.List;
import javax.swing.JOptionPane;

/**
 *
 * @author Lubnnia
 */
public class ClienteControlador {

    private ClienteRepositorio clienteRep;

    public ClienteControlador() {
        this.clienteRep = new ClienteRepositorio();
    }

    public void validarCliente(Cliente cliente) throws CadastrarClienteException {

        if(cliente.getNome().equals("") 
                || cliente.getEmail().equals("") || cliente.getCelular().equals("") || cliente.getTelefone().equals("")
                || cliente.getEndereco().getLogradouro().equals("") || cliente.getEndereco().getBairro().equals("")
                || cliente.getEndereco().getCep().equals("") || cliente.getEndereco().getCidade().equals("")
                || cliente.getEndereco().getComplemento().equals("") || cliente.getEndereco().getNumero().equals("")
                || cliente.getEndereco().getUf().equals("")) {
            JOptionPane.showMessageDialog(null, "Favor preencha os campos obrigatórios",
                    "Mensagem do Sistema", JOptionPane.INFORMATION_MESSAGE);
        }

    }

    public void cadastrarCliente(Cliente cliente) throws CadastrarClienteException {

        this.validarCliente(cliente);

        this.clienteRep.cadastrarCliente(cliente);

        JOptionPane.showMessageDialog(null, "Cliente Cadastrado com Sucesso!",
                "Mensagem do Sistema", JOptionPane.INFORMATION_MESSAGE);
    }

    public boolean alterarCliente(Cliente cliente) throws CadastrarClienteException {
        boolean resposta = false;
        if(!(cliente.getNome().equals("") && cliente.getDataNascimento().equals("") && cliente.getEmail().equals(""))) {
            this.clienteRep.alterarCliente(cliente);
            resposta = true;
        } else {
            resposta = false;
        }
        return resposta;
    }

    public void deletarCliente(Cliente cliente) {

        if(cliente != null) {
            this.clienteRep.deletarCliente(cliente);
            JOptionPane.showMessageDialog(null, "Dados Excluídos com Sucesso!",
                    "Mensagem do Sistema", JOptionPane.INFORMATION_MESSAGE);
        } else {
            JOptionPane.showMessageDialog(null, "Cliente não existe!",
                    "Mensagem do Sistema", JOptionPane.INFORMATION_MESSAGE);
        }

    }

    public Cliente pesquisarClientePorID(int id) {

        Cliente cliente = this.clienteRep.pesquisarClientePorID(id);

        return cliente;

    }

    public List pesquisarClienteTodos() {

        List cliente = this.clienteRep.pesquisarClienteTodos();

        return cliente;

    }

    public List pesquisarClientePorNome(String nomeCliente) {

        List cliente = this.clienteRep.pesquisarClientePorNome(nomeCliente);

        return cliente;

    }

}
